package com.fulihui.information.core.repository;

import com.fulihui.information.dto.DislikeInfo;
import com.fulihui.information.dto.DislikeStat;
import com.fulihui.information.request.DislikeAddRequest;
import com.fulihui.information.request.DislikeQueryRequest;

import java.util.List;

/**
 *
 * Created by LeeSon on 2017/1/10 0010.
 */
public interface DislikeRepository {
    /**
     * 添加举报信息
     * @param request {@link DislikeAddRequest}
     * @return
     */
    boolean addDislike(DislikeAddRequest request);

    /**
     * 修改举报记录状态
     * @param dislikeId 举报记录ID
     * @param status 状态
     * @param operator 操作人
     * @return
     */
    boolean modifyStatus(Long dislikeId, String status, String operator);

    /**
     * 获取举报详情
     * @param dislikeId 举报信息ID
     * @param haveContent 是否返回被举报的内容信息
     * @return {@link DislikeInfo}
     */
    DislikeInfo detail(Long dislikeId, boolean haveContent);

    /**
     * 分页查询举报信息
     * @param request
     * @return
     */
    List<DislikeInfo> queryPage(DislikeQueryRequest request);

    /**
     * 举报信息记录条数（配合分页使用）
     * @param request
     * @return
     */
    int queryPageCount(DislikeQueryRequest request);

    /**
     * 判断举报是否存在
     * @param userId
     * @param contentId
     * @return
     */
    boolean isExist(String userId, String contentId);

    /**
     * 获取举报统计信息
     * @return
     */
    DislikeStat stat();
}